<template>
  <div class="charts" ref="chartsRef"></div>
</template>

<script lang="ts">
export default {
  name: "ProgressChart",
};
</script>

<script lang="ts" setup>
import { right } from "@popperjs/core";
import * as echarts from "echarts";
import { ref, watch } from "vue";
const chartsRef = ref();
const props = defineProps<{
  data: number;
}>();
watch(
  () => props.data,
  () => {
    const myEcharts = echarts.init(chartsRef.value);
    const option = {
      // x轴和y轴值对换
      yAxis: {
        data: ["0"],
        show: false,
      },
      xAxis: {
        show: false,
        // 进度条效果指定最小值和最大值
        min: 0,
        max: 100,
      },
      // 定位
      grid: {
        top: 0,
        bottom: 0,
        left: 0,
        right: 0,
      },
      // 提示组件，鼠标移入有数据提示
      tooltip: {
        trigger: "axis", // 放上去有虚线
      },
      series: [
        {
          name: "用户增长量",
          type: "bar",
          data: [props.data],
          // 柱条样式
          itemStyle: {
            color: "#9acd32", // 颜色
          },
          // 柱条宽度
          barWidth: 10,
          // 是否显示柱条的背景色
          showBackground: true,
          // 图形上的文本标签
          label: {
            show: true, // 是否显示标签
            formatter: "|", // 修改图形的文本为|显示
            position: right, // 标签的位置
            color: "9acd32", // 修改文本的| 的颜色和柱条颜色一样
          },
        },
      ],
    };
    myEcharts.setOption(option);
  }
);
</script>

<style scoped>
.charts {
  width: 100%;
  height: 100%;
}
</style>
